// 无状态组件 StatelessComponent
// 慢慢发展成为函数式组件
// import React from 'react'
// interface ChildProps {
//     count:number;
// }

// const Child:React.StatelessComponent<ChildProps> = (props) => {
//     return (
//         <div>
//             Child {props.count}
//         </div>
//     )
// }

// export default Child
import React,{ Component,Props } from 'react'

interface Props {
    count:number;
    visible:boolean
}
interface State {

}
class Child extends Component<Props,State> {
    constructor(props) {
        super(props) // /运行基类的constructor 才能成为组件
        this.state = {
            count:1,
            visible:true
        }
    }
    // 声明周期函数
    componentDidMount() {
        console.log('组件挂载了')
    }
    componentsWillUnmount() {
        console.log('组件卸载了')
    }
    // 组织组件更新
    shouldComponentUpdate(){
        console.log('check是否更新')
        if(this.props.count %2 == 0) {
            return false;
        }
        return true
    }
    componentDidUpdate() {
        console.log('组件更新了')
    }
    render() {
        const {count} = this.props
        return (
            <div>
                Child {count}
            </div>
        )
    }
}

export default Child